(function() {
	$.fn.datetime = function(opt) {
		function cPlugin(o, emlnum) {
			var sjObj = o;
			var testUser;
			var countDownTime;
			var uTime;
			var init = 0;
			var downUser = 0;
			//默认参数
			sjObj.defaults = {
				userTime : 5,//等待时间
				countTime : 29,//提示面板出现时长
				loginType : true,//是否退出登录
				type : 0,//倒计时种类
				height : 70,
				width:100,
				context:'秒后未操作,系统自动退出',
				t_box:null,//保存生产元素盒子
				df_persp:function(){//创建装载盒子
	                return $("<div class='df-persp'><div class='persp-bg'></div>")
	            },
	            df_box:function(){
	            	return $("<div class='df-box' style='line-height:"+sjObj.opt.height+"px;'></div>")
	            },
	            df_main:function(){
	            	return $("<div class='df-main df-time-count'><span class='text-red'></span><span>"+sjObj.opt.context+"</span><div>");
	            },
	            timeElm : function(){//存放弹出样式
	            	sjObj.opt.t_box=sjObj.opt.df_box();
	            	var main=sjObj.opt.df_main();
					sjObj.opt.timeElm=$("<div class='df-persp'><div class='persp-bg'></div>");
					sjObj.opt.timeElm.append(sjObj.opt.t_box.append(main));
				}
			}
			sjObj.opt = $.extend({}, sjObj.defaults, opt);
			sjObj.innt = function() {
				countDownTime = sjObj.opt.countTime;
				uTime = sjObj.opt.userTime;
				if(sjObj.opt.type == 0){
					var body = document.querySelector('html');
					body.addEventListener("click", sjObj.eventFun);
					body.addEventListener("keydown", sjObj.eventFun);
					body.addEventListener("mousemove", sjObj.eventFun);
					body.addEventListener("mousewheel", sjObj.eventFun);
				}
				if(sjObj.opt.type == 0){
					if (countDownTime == sjObj.opt.countTime) {
						testUser = setInterval(sjObj.time, 1000);
					}
				}else if(sjObj.opt.type == 1){
					$('body').find('.date-time').text(uTime);
					testUser = setInterval(sjObj.time, 1000);
				}
				
			}
			sjObj.time = function() {
				init += 1;
				if(sjObj.opt.type == 0){
					if (init == sjObj.opt.userTime) {
						downUser = setInterval(sjObj.showDiv, 1000);
					}
				}else if(sjObj.opt.type == 1){
					if (init == 1) {
						downUser = setInterval(sjObj.showNum, 1000);
					}
				}
				
			}
			sjObj.showNum = function(){
				clearInterval(testUser);
				if (uTime < 0) {
					if(sjObj.opt.loginType){
						clearInterval(downUser);
						location.href = "loginOut";
					}else{
						clearInterval(downUser);
						location.href = 'index.jsp';
					}
				}else{
					$('body').find('.date-time').text(uTime);
				}
				uTime--;
				//console.log(uTime);
			}
			sjObj.showDiv = function() {
				if (countDownTime == sjObj.opt.countTime) {
					clearInterval(testUser);
				}
				if (countDownTime < 0) {
					$('body').find(".df-persp").remove();
					//document.getElementById("date").style.display = "none";
					if(sjObj.opt.loginType){
						clearInterval(downUser);
						location.href = "loginOut";
					}else{
						clearInterval(downUser);
						location.href = 'index.jsp';
					}
				} else {
					var countDownLen = $('body').find(".df-persp").length;
					if(countDownLen == 0){
						$('body').append(sjObj.opt.timeElm);
					}
					$(".text-red").text(countDownTime);
					countDownTime--;
				}
			}
			sjObj.eventFun = function() {
				clearInterval(testUser);
				clearInterval(downUser);
				init = 0;
				countDownTime = sjObj.opt.countTime;
				testUser = setInterval(sjObj.time, 1000);
				$('body').find(".df-persp").remove();
				//document.getElementById("date").style.display = "none";
			}
			sjObj.innt();
			return sjObj
		}
		cPlugin(this);
	}
})(jQuery)